package com.xb.cloud.product.service.business.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.xb.cloud.common.model.PageParam;

public class ProductExample extends PageParam{
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNull() {
            addCriterion("company_id is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNotNull() {
            addCriterion("company_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdEqualTo(Long value) {
            addCriterion("company_id =", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotEqualTo(Long value) {
            addCriterion("company_id <>", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThan(Long value) {
            addCriterion("company_id >", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThanOrEqualTo(Long value) {
            addCriterion("company_id >=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThan(Long value) {
            addCriterion("company_id <", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThanOrEqualTo(Long value) {
            addCriterion("company_id <=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIn(List<Long> values) {
            addCriterion("company_id in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotIn(List<Long> values) {
            addCriterion("company_id not in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdBetween(Long value1, Long value2) {
            addCriterion("company_id between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotBetween(Long value1, Long value2) {
            addCriterion("company_id not between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNull() {
            addCriterion("merchant_id is null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIsNotNull() {
            addCriterion("merchant_id is not null");
            return (Criteria) this;
        }

        public Criteria andMerchantIdEqualTo(Long value) {
            addCriterion("merchant_id =", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotEqualTo(Long value) {
            addCriterion("merchant_id <>", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThan(Long value) {
            addCriterion("merchant_id >", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdGreaterThanOrEqualTo(Long value) {
            addCriterion("merchant_id >=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThan(Long value) {
            addCriterion("merchant_id <", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdLessThanOrEqualTo(Long value) {
            addCriterion("merchant_id <=", value, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdIn(List<Long> values) {
            addCriterion("merchant_id in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotIn(List<Long> values) {
            addCriterion("merchant_id not in", values, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdBetween(Long value1, Long value2) {
            addCriterion("merchant_id between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andMerchantIdNotBetween(Long value1, Long value2) {
            addCriterion("merchant_id not between", value1, value2, "merchantId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNull() {
            addCriterion("brand_id is null");
            return (Criteria) this;
        }

        public Criteria andBrandIdIsNotNull() {
            addCriterion("brand_id is not null");
            return (Criteria) this;
        }

        public Criteria andBrandIdEqualTo(Long value) {
            addCriterion("brand_id =", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotEqualTo(Long value) {
            addCriterion("brand_id <>", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThan(Long value) {
            addCriterion("brand_id >", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdGreaterThanOrEqualTo(Long value) {
            addCriterion("brand_id >=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThan(Long value) {
            addCriterion("brand_id <", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdLessThanOrEqualTo(Long value) {
            addCriterion("brand_id <=", value, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdIn(List<Long> values) {
            addCriterion("brand_id in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotIn(List<Long> values) {
            addCriterion("brand_id not in", values, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdBetween(Long value1, Long value2) {
            addCriterion("brand_id between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andBrandIdNotBetween(Long value1, Long value2) {
            addCriterion("brand_id not between", value1, value2, "brandId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNull() {
            addCriterion("category_id is null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIsNotNull() {
            addCriterion("category_id is not null");
            return (Criteria) this;
        }

        public Criteria andCategoryIdEqualTo(Long value) {
            addCriterion("category_id =", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotEqualTo(Long value) {
            addCriterion("category_id <>", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThan(Long value) {
            addCriterion("category_id >", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {
            addCriterion("category_id >=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThan(Long value) {
            addCriterion("category_id <", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {
            addCriterion("category_id <=", value, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdIn(List<Long> values) {
            addCriterion("category_id in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotIn(List<Long> values) {
            addCriterion("category_id not in", values, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdBetween(Long value1, Long value2) {
            addCriterion("category_id between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {
            addCriterion("category_id not between", value1, value2, "categoryId");
            return (Criteria) this;
        }

        public Criteria andProductTypeIsNull() {
            addCriterion("product_type is null");
            return (Criteria) this;
        }

        public Criteria andProductTypeIsNotNull() {
            addCriterion("product_type is not null");
            return (Criteria) this;
        }

        public Criteria andProductTypeEqualTo(Byte value) {
            addCriterion("product_type =", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotEqualTo(Byte value) {
            addCriterion("product_type <>", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeGreaterThan(Byte value) {
            addCriterion("product_type >", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_type >=", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeLessThan(Byte value) {
            addCriterion("product_type <", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeLessThanOrEqualTo(Byte value) {
            addCriterion("product_type <=", value, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeIn(List<Byte> values) {
            addCriterion("product_type in", values, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotIn(List<Byte> values) {
            addCriterion("product_type not in", values, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeBetween(Byte value1, Byte value2) {
            addCriterion("product_type between", value1, value2, "productType");
            return (Criteria) this;
        }

        public Criteria andProductTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("product_type not between", value1, value2, "productType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeIsNull() {
            addCriterion("product_sale_type is null");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeIsNotNull() {
            addCriterion("product_sale_type is not null");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeEqualTo(Byte value) {
            addCriterion("product_sale_type =", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeNotEqualTo(Byte value) {
            addCriterion("product_sale_type <>", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeGreaterThan(Byte value) {
            addCriterion("product_sale_type >", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_sale_type >=", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeLessThan(Byte value) {
            addCriterion("product_sale_type <", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeLessThanOrEqualTo(Byte value) {
            addCriterion("product_sale_type <=", value, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeIn(List<Byte> values) {
            addCriterion("product_sale_type in", values, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeNotIn(List<Byte> values) {
            addCriterion("product_sale_type not in", values, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeBetween(Byte value1, Byte value2) {
            addCriterion("product_sale_type between", value1, value2, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andProductSaleTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("product_sale_type not between", value1, value2, "productSaleType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeIsNull() {
            addCriterion("delivery_type is null");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeIsNotNull() {
            addCriterion("delivery_type is not null");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeEqualTo(Integer value) {
            addCriterion("delivery_type =", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeNotEqualTo(Integer value) {
            addCriterion("delivery_type <>", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeGreaterThan(Integer value) {
            addCriterion("delivery_type >", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("delivery_type >=", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeLessThan(Integer value) {
            addCriterion("delivery_type <", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeLessThanOrEqualTo(Integer value) {
            addCriterion("delivery_type <=", value, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeIn(List<Integer> values) {
            addCriterion("delivery_type in", values, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeNotIn(List<Integer> values) {
            addCriterion("delivery_type not in", values, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeBetween(Integer value1, Integer value2) {
            addCriterion("delivery_type between", value1, value2, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andDeliveryTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("delivery_type not between", value1, value2, "deliveryType");
            return (Criteria) this;
        }

        public Criteria andProductNameCnIsNull() {
            addCriterion("product_name_cn is null");
            return (Criteria) this;
        }

        public Criteria andProductNameCnIsNotNull() {
            addCriterion("product_name_cn is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameCnEqualTo(String value) {
            addCriterion("product_name_cn =", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnNotEqualTo(String value) {
            addCriterion("product_name_cn <>", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnGreaterThan(String value) {
            addCriterion("product_name_cn >", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnGreaterThanOrEqualTo(String value) {
            addCriterion("product_name_cn >=", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnLessThan(String value) {
            addCriterion("product_name_cn <", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnLessThanOrEqualTo(String value) {
            addCriterion("product_name_cn <=", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnLike(String value) {
            addCriterion("product_name_cn like", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnNotLike(String value) {
            addCriterion("product_name_cn not like", value, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnIn(List<String> values) {
            addCriterion("product_name_cn in", values, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnNotIn(List<String> values) {
            addCriterion("product_name_cn not in", values, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnBetween(String value1, String value2) {
            addCriterion("product_name_cn between", value1, value2, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductNameCnNotBetween(String value1, String value2) {
            addCriterion("product_name_cn not between", value1, value2, "productNameCn");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubIsNull() {
            addCriterion("product_title_sub is null");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubIsNotNull() {
            addCriterion("product_title_sub is not null");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubEqualTo(String value) {
            addCriterion("product_title_sub =", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubNotEqualTo(String value) {
            addCriterion("product_title_sub <>", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubGreaterThan(String value) {
            addCriterion("product_title_sub >", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubGreaterThanOrEqualTo(String value) {
            addCriterion("product_title_sub >=", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubLessThan(String value) {
            addCriterion("product_title_sub <", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubLessThanOrEqualTo(String value) {
            addCriterion("product_title_sub <=", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubLike(String value) {
            addCriterion("product_title_sub like", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubNotLike(String value) {
            addCriterion("product_title_sub not like", value, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubIn(List<String> values) {
            addCriterion("product_title_sub in", values, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubNotIn(List<String> values) {
            addCriterion("product_title_sub not in", values, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubBetween(String value1, String value2) {
            addCriterion("product_title_sub between", value1, value2, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andProductTitleSubNotBetween(String value1, String value2) {
            addCriterion("product_title_sub not between", value1, value2, "productTitleSub");
            return (Criteria) this;
        }

        public Criteria andPriceMarketIsNull() {
            addCriterion("price_market is null");
            return (Criteria) this;
        }

        public Criteria andPriceMarketIsNotNull() {
            addCriterion("price_market is not null");
            return (Criteria) this;
        }

        public Criteria andPriceMarketEqualTo(BigDecimal value) {
            addCriterion("price_market =", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketNotEqualTo(BigDecimal value) {
            addCriterion("price_market <>", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketGreaterThan(BigDecimal value) {
            addCriterion("price_market >", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price_market >=", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketLessThan(BigDecimal value) {
            addCriterion("price_market <", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price_market <=", value, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketIn(List<BigDecimal> values) {
            addCriterion("price_market in", values, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketNotIn(List<BigDecimal> values) {
            addCriterion("price_market not in", values, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_market between", value1, value2, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceMarketNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_market not between", value1, value2, "priceMarket");
            return (Criteria) this;
        }

        public Criteria andPriceInIsNull() {
            addCriterion("price_in is null");
            return (Criteria) this;
        }

        public Criteria andPriceInIsNotNull() {
            addCriterion("price_in is not null");
            return (Criteria) this;
        }

        public Criteria andPriceInEqualTo(BigDecimal value) {
            addCriterion("price_in =", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInNotEqualTo(BigDecimal value) {
            addCriterion("price_in <>", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInGreaterThan(BigDecimal value) {
            addCriterion("price_in >", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price_in >=", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInLessThan(BigDecimal value) {
            addCriterion("price_in <", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price_in <=", value, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInIn(List<BigDecimal> values) {
            addCriterion("price_in in", values, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInNotIn(List<BigDecimal> values) {
            addCriterion("price_in not in", values, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_in between", value1, value2, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceInNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_in not between", value1, value2, "priceIn");
            return (Criteria) this;
        }

        public Criteria andPriceSaleIsNull() {
            addCriterion("price_sale is null");
            return (Criteria) this;
        }

        public Criteria andPriceSaleIsNotNull() {
            addCriterion("price_sale is not null");
            return (Criteria) this;
        }

        public Criteria andPriceSaleEqualTo(BigDecimal value) {
            addCriterion("price_sale =", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleNotEqualTo(BigDecimal value) {
            addCriterion("price_sale <>", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleGreaterThan(BigDecimal value) {
            addCriterion("price_sale >", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("price_sale >=", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleLessThan(BigDecimal value) {
            addCriterion("price_sale <", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleLessThanOrEqualTo(BigDecimal value) {
            addCriterion("price_sale <=", value, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleIn(List<BigDecimal> values) {
            addCriterion("price_sale in", values, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleNotIn(List<BigDecimal> values) {
            addCriterion("price_sale not in", values, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_sale between", value1, value2, "priceSale");
            return (Criteria) this;
        }

        public Criteria andPriceSaleNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("price_sale not between", value1, value2, "priceSale");
            return (Criteria) this;
        }

        public Criteria andEan13IsNull() {
            addCriterion("EAN13 is null");
            return (Criteria) this;
        }

        public Criteria andEan13IsNotNull() {
            addCriterion("EAN13 is not null");
            return (Criteria) this;
        }

        public Criteria andEan13EqualTo(String value) {
            addCriterion("EAN13 =", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13NotEqualTo(String value) {
            addCriterion("EAN13 <>", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13GreaterThan(String value) {
            addCriterion("EAN13 >", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13GreaterThanOrEqualTo(String value) {
            addCriterion("EAN13 >=", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13LessThan(String value) {
            addCriterion("EAN13 <", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13LessThanOrEqualTo(String value) {
            addCriterion("EAN13 <=", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13Like(String value) {
            addCriterion("EAN13 like", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13NotLike(String value) {
            addCriterion("EAN13 not like", value, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13In(List<String> values) {
            addCriterion("EAN13 in", values, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13NotIn(List<String> values) {
            addCriterion("EAN13 not in", values, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13Between(String value1, String value2) {
            addCriterion("EAN13 between", value1, value2, "ean13");
            return (Criteria) this;
        }

        public Criteria andEan13NotBetween(String value1, String value2) {
            addCriterion("EAN13 not between", value1, value2, "ean13");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeIsNull() {
            addCriterion("product_barcode is null");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeIsNotNull() {
            addCriterion("product_barcode is not null");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeEqualTo(String value) {
            addCriterion("product_barcode =", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeNotEqualTo(String value) {
            addCriterion("product_barcode <>", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeGreaterThan(String value) {
            addCriterion("product_barcode >", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeGreaterThanOrEqualTo(String value) {
            addCriterion("product_barcode >=", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeLessThan(String value) {
            addCriterion("product_barcode <", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeLessThanOrEqualTo(String value) {
            addCriterion("product_barcode <=", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeLike(String value) {
            addCriterion("product_barcode like", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeNotLike(String value) {
            addCriterion("product_barcode not like", value, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeIn(List<String> values) {
            addCriterion("product_barcode in", values, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeNotIn(List<String> values) {
            addCriterion("product_barcode not in", values, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeBetween(String value1, String value2) {
            addCriterion("product_barcode between", value1, value2, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andProductBarcodeNotBetween(String value1, String value2) {
            addCriterion("product_barcode not between", value1, value2, "productBarcode");
            return (Criteria) this;
        }

        public Criteria andLengthIsNull() {
            addCriterion("length is null");
            return (Criteria) this;
        }

        public Criteria andLengthIsNotNull() {
            addCriterion("length is not null");
            return (Criteria) this;
        }

        public Criteria andLengthEqualTo(BigDecimal value) {
            addCriterion("length =", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthNotEqualTo(BigDecimal value) {
            addCriterion("length <>", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthGreaterThan(BigDecimal value) {
            addCriterion("length >", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("length >=", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthLessThan(BigDecimal value) {
            addCriterion("length <", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthLessThanOrEqualTo(BigDecimal value) {
            addCriterion("length <=", value, "length");
            return (Criteria) this;
        }

        public Criteria andLengthIn(List<BigDecimal> values) {
            addCriterion("length in", values, "length");
            return (Criteria) this;
        }

        public Criteria andLengthNotIn(List<BigDecimal> values) {
            addCriterion("length not in", values, "length");
            return (Criteria) this;
        }

        public Criteria andLengthBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("length between", value1, value2, "length");
            return (Criteria) this;
        }

        public Criteria andLengthNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("length not between", value1, value2, "length");
            return (Criteria) this;
        }

        public Criteria andWidthIsNull() {
            addCriterion("width is null");
            return (Criteria) this;
        }

        public Criteria andWidthIsNotNull() {
            addCriterion("width is not null");
            return (Criteria) this;
        }

        public Criteria andWidthEqualTo(BigDecimal value) {
            addCriterion("width =", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthNotEqualTo(BigDecimal value) {
            addCriterion("width <>", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthGreaterThan(BigDecimal value) {
            addCriterion("width >", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("width >=", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthLessThan(BigDecimal value) {
            addCriterion("width <", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthLessThanOrEqualTo(BigDecimal value) {
            addCriterion("width <=", value, "width");
            return (Criteria) this;
        }

        public Criteria andWidthIn(List<BigDecimal> values) {
            addCriterion("width in", values, "width");
            return (Criteria) this;
        }

        public Criteria andWidthNotIn(List<BigDecimal> values) {
            addCriterion("width not in", values, "width");
            return (Criteria) this;
        }

        public Criteria andWidthBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("width between", value1, value2, "width");
            return (Criteria) this;
        }

        public Criteria andWidthNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("width not between", value1, value2, "width");
            return (Criteria) this;
        }

        public Criteria andHeightIsNull() {
            addCriterion("height is null");
            return (Criteria) this;
        }

        public Criteria andHeightIsNotNull() {
            addCriterion("height is not null");
            return (Criteria) this;
        }

        public Criteria andHeightEqualTo(BigDecimal value) {
            addCriterion("height =", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotEqualTo(BigDecimal value) {
            addCriterion("height <>", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightGreaterThan(BigDecimal value) {
            addCriterion("height >", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("height >=", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightLessThan(BigDecimal value) {
            addCriterion("height <", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightLessThanOrEqualTo(BigDecimal value) {
            addCriterion("height <=", value, "height");
            return (Criteria) this;
        }

        public Criteria andHeightIn(List<BigDecimal> values) {
            addCriterion("height in", values, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotIn(List<BigDecimal> values) {
            addCriterion("height not in", values, "height");
            return (Criteria) this;
        }

        public Criteria andHeightBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("height between", value1, value2, "height");
            return (Criteria) this;
        }

        public Criteria andHeightNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("height not between", value1, value2, "height");
            return (Criteria) this;
        }

        public Criteria andVolumeIsNull() {
            addCriterion("volume is null");
            return (Criteria) this;
        }

        public Criteria andVolumeIsNotNull() {
            addCriterion("volume is not null");
            return (Criteria) this;
        }

        public Criteria andVolumeEqualTo(BigDecimal value) {
            addCriterion("volume =", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeNotEqualTo(BigDecimal value) {
            addCriterion("volume <>", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeGreaterThan(BigDecimal value) {
            addCriterion("volume >", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("volume >=", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeLessThan(BigDecimal value) {
            addCriterion("volume <", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeLessThanOrEqualTo(BigDecimal value) {
            addCriterion("volume <=", value, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeIn(List<BigDecimal> values) {
            addCriterion("volume in", values, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeNotIn(List<BigDecimal> values) {
            addCriterion("volume not in", values, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("volume between", value1, value2, "volume");
            return (Criteria) this;
        }

        public Criteria andVolumeNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("volume not between", value1, value2, "volume");
            return (Criteria) this;
        }

        public Criteria andWeightNetIsNull() {
            addCriterion("weight_net is null");
            return (Criteria) this;
        }

        public Criteria andWeightNetIsNotNull() {
            addCriterion("weight_net is not null");
            return (Criteria) this;
        }

        public Criteria andWeightNetEqualTo(BigDecimal value) {
            addCriterion("weight_net =", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetNotEqualTo(BigDecimal value) {
            addCriterion("weight_net <>", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetGreaterThan(BigDecimal value) {
            addCriterion("weight_net >", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("weight_net >=", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetLessThan(BigDecimal value) {
            addCriterion("weight_net <", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetLessThanOrEqualTo(BigDecimal value) {
            addCriterion("weight_net <=", value, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetIn(List<BigDecimal> values) {
            addCriterion("weight_net in", values, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetNotIn(List<BigDecimal> values) {
            addCriterion("weight_net not in", values, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("weight_net between", value1, value2, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightNetNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("weight_net not between", value1, value2, "weightNet");
            return (Criteria) this;
        }

        public Criteria andWeightGrossIsNull() {
            addCriterion("weight_gross is null");
            return (Criteria) this;
        }

        public Criteria andWeightGrossIsNotNull() {
            addCriterion("weight_gross is not null");
            return (Criteria) this;
        }

        public Criteria andWeightGrossEqualTo(BigDecimal value) {
            addCriterion("weight_gross =", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossNotEqualTo(BigDecimal value) {
            addCriterion("weight_gross <>", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossGreaterThan(BigDecimal value) {
            addCriterion("weight_gross >", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("weight_gross >=", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossLessThan(BigDecimal value) {
            addCriterion("weight_gross <", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossLessThanOrEqualTo(BigDecimal value) {
            addCriterion("weight_gross <=", value, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossIn(List<BigDecimal> values) {
            addCriterion("weight_gross in", values, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossNotIn(List<BigDecimal> values) {
            addCriterion("weight_gross not in", values, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("weight_gross between", value1, value2, "weightGross");
            return (Criteria) this;
        }

        public Criteria andWeightGrossNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("weight_gross not between", value1, value2, "weightGross");
            return (Criteria) this;
        }

        public Criteria andProductUnitIsNull() {
            addCriterion("product_unit is null");
            return (Criteria) this;
        }

        public Criteria andProductUnitIsNotNull() {
            addCriterion("product_unit is not null");
            return (Criteria) this;
        }

        public Criteria andProductUnitEqualTo(String value) {
            addCriterion("product_unit =", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitNotEqualTo(String value) {
            addCriterion("product_unit <>", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitGreaterThan(String value) {
            addCriterion("product_unit >", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitGreaterThanOrEqualTo(String value) {
            addCriterion("product_unit >=", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitLessThan(String value) {
            addCriterion("product_unit <", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitLessThanOrEqualTo(String value) {
            addCriterion("product_unit <=", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitLike(String value) {
            addCriterion("product_unit like", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitNotLike(String value) {
            addCriterion("product_unit not like", value, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitIn(List<String> values) {
            addCriterion("product_unit in", values, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitNotIn(List<String> values) {
            addCriterion("product_unit not in", values, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitBetween(String value1, String value2) {
            addCriterion("product_unit between", value1, value2, "productUnit");
            return (Criteria) this;
        }

        public Criteria andProductUnitNotBetween(String value1, String value2) {
            addCriterion("product_unit not between", value1, value2, "productUnit");
            return (Criteria) this;
        }

        public Criteria andPackNumIsNull() {
            addCriterion("pack_num is null");
            return (Criteria) this;
        }

        public Criteria andPackNumIsNotNull() {
            addCriterion("pack_num is not null");
            return (Criteria) this;
        }

        public Criteria andPackNumEqualTo(Integer value) {
            addCriterion("pack_num =", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumNotEqualTo(Integer value) {
            addCriterion("pack_num <>", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumGreaterThan(Integer value) {
            addCriterion("pack_num >", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("pack_num >=", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumLessThan(Integer value) {
            addCriterion("pack_num <", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumLessThanOrEqualTo(Integer value) {
            addCriterion("pack_num <=", value, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumIn(List<Integer> values) {
            addCriterion("pack_num in", values, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumNotIn(List<Integer> values) {
            addCriterion("pack_num not in", values, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumBetween(Integer value1, Integer value2) {
            addCriterion("pack_num between", value1, value2, "packNum");
            return (Criteria) this;
        }

        public Criteria andPackNumNotBetween(Integer value1, Integer value2) {
            addCriterion("pack_num not between", value1, value2, "packNum");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryIsNull() {
            addCriterion("is_sale_whole_country is null");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryIsNotNull() {
            addCriterion("is_sale_whole_country is not null");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryEqualTo(Byte value) {
            addCriterion("is_sale_whole_country =", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryNotEqualTo(Byte value) {
            addCriterion("is_sale_whole_country <>", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryGreaterThan(Byte value) {
            addCriterion("is_sale_whole_country >", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_sale_whole_country >=", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryLessThan(Byte value) {
            addCriterion("is_sale_whole_country <", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryLessThanOrEqualTo(Byte value) {
            addCriterion("is_sale_whole_country <=", value, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryIn(List<Byte> values) {
            addCriterion("is_sale_whole_country in", values, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryNotIn(List<Byte> values) {
            addCriterion("is_sale_whole_country not in", values, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryBetween(Byte value1, Byte value2) {
            addCriterion("is_sale_whole_country between", value1, value2, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsSaleWholeCountryNotBetween(Byte value1, Byte value2) {
            addCriterion("is_sale_whole_country not between", value1, value2, "isSaleWholeCountry");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceIsNull() {
            addCriterion("is_must_invoice is null");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceIsNotNull() {
            addCriterion("is_must_invoice is not null");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceEqualTo(Byte value) {
            addCriterion("is_must_invoice =", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceNotEqualTo(Byte value) {
            addCriterion("is_must_invoice <>", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceGreaterThan(Byte value) {
            addCriterion("is_must_invoice >", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_must_invoice >=", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceLessThan(Byte value) {
            addCriterion("is_must_invoice <", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceLessThanOrEqualTo(Byte value) {
            addCriterion("is_must_invoice <=", value, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceIn(List<Byte> values) {
            addCriterion("is_must_invoice in", values, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceNotIn(List<Byte> values) {
            addCriterion("is_must_invoice not in", values, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceBetween(Byte value1, Byte value2) {
            addCriterion("is_must_invoice between", value1, value2, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsMustInvoiceNotBetween(Byte value1, Byte value2) {
            addCriterion("is_must_invoice not between", value1, value2, "isMustInvoice");
            return (Criteria) this;
        }

        public Criteria andIsVatiIsNull() {
            addCriterion("is_vati is null");
            return (Criteria) this;
        }

        public Criteria andIsVatiIsNotNull() {
            addCriterion("is_vati is not null");
            return (Criteria) this;
        }

        public Criteria andIsVatiEqualTo(Byte value) {
            addCriterion("is_vati =", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiNotEqualTo(Byte value) {
            addCriterion("is_vati <>", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiGreaterThan(Byte value) {
            addCriterion("is_vati >", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_vati >=", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiLessThan(Byte value) {
            addCriterion("is_vati <", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiLessThanOrEqualTo(Byte value) {
            addCriterion("is_vati <=", value, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiIn(List<Byte> values) {
            addCriterion("is_vati in", values, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiNotIn(List<Byte> values) {
            addCriterion("is_vati not in", values, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiBetween(Byte value1, Byte value2) {
            addCriterion("is_vati between", value1, value2, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsVatiNotBetween(Byte value1, Byte value2) {
            addCriterion("is_vati not between", value1, value2, "isVati");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedIsNull() {
            addCriterion("is_stock_unlimited is null");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedIsNotNull() {
            addCriterion("is_stock_unlimited is not null");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedEqualTo(Byte value) {
            addCriterion("is_stock_unlimited =", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedNotEqualTo(Byte value) {
            addCriterion("is_stock_unlimited <>", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedGreaterThan(Byte value) {
            addCriterion("is_stock_unlimited >", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_stock_unlimited >=", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedLessThan(Byte value) {
            addCriterion("is_stock_unlimited <", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedLessThanOrEqualTo(Byte value) {
            addCriterion("is_stock_unlimited <=", value, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedIn(List<Byte> values) {
            addCriterion("is_stock_unlimited in", values, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedNotIn(List<Byte> values) {
            addCriterion("is_stock_unlimited not in", values, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedBetween(Byte value1, Byte value2) {
            addCriterion("is_stock_unlimited between", value1, value2, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andIsStockUnlimitedNotBetween(Byte value1, Byte value2) {
            addCriterion("is_stock_unlimited not between", value1, value2, "isStockUnlimited");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayIsNull() {
            addCriterion("product_quality_day is null");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayIsNotNull() {
            addCriterion("product_quality_day is not null");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayEqualTo(Integer value) {
            addCriterion("product_quality_day =", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayNotEqualTo(Integer value) {
            addCriterion("product_quality_day <>", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayGreaterThan(Integer value) {
            addCriterion("product_quality_day >", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_quality_day >=", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayLessThan(Integer value) {
            addCriterion("product_quality_day <", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayLessThanOrEqualTo(Integer value) {
            addCriterion("product_quality_day <=", value, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayIn(List<Integer> values) {
            addCriterion("product_quality_day in", values, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayNotIn(List<Integer> values) {
            addCriterion("product_quality_day not in", values, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayBetween(Integer value1, Integer value2) {
            addCriterion("product_quality_day between", value1, value2, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductQualityDayNotBetween(Integer value1, Integer value2) {
            addCriterion("product_quality_day not between", value1, value2, "productQualityDay");
            return (Criteria) this;
        }

        public Criteria andProductVersionIsNull() {
            addCriterion("product_version is null");
            return (Criteria) this;
        }

        public Criteria andProductVersionIsNotNull() {
            addCriterion("product_version is not null");
            return (Criteria) this;
        }

        public Criteria andProductVersionEqualTo(Integer value) {
            addCriterion("product_version =", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionNotEqualTo(Integer value) {
            addCriterion("product_version <>", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionGreaterThan(Integer value) {
            addCriterion("product_version >", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_version >=", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionLessThan(Integer value) {
            addCriterion("product_version <", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionLessThanOrEqualTo(Integer value) {
            addCriterion("product_version <=", value, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionIn(List<Integer> values) {
            addCriterion("product_version in", values, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionNotIn(List<Integer> values) {
            addCriterion("product_version not in", values, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionBetween(Integer value1, Integer value2) {
            addCriterion("product_version between", value1, value2, "productVersion");
            return (Criteria) this;
        }

        public Criteria andProductVersionNotBetween(Integer value1, Integer value2) {
            addCriterion("product_version not between", value1, value2, "productVersion");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaIsNull() {
            addCriterion("is_merchant_area is null");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaIsNotNull() {
            addCriterion("is_merchant_area is not null");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaEqualTo(Byte value) {
            addCriterion("is_merchant_area =", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaNotEqualTo(Byte value) {
            addCriterion("is_merchant_area <>", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaGreaterThan(Byte value) {
            addCriterion("is_merchant_area >", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_merchant_area >=", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaLessThan(Byte value) {
            addCriterion("is_merchant_area <", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaLessThanOrEqualTo(Byte value) {
            addCriterion("is_merchant_area <=", value, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaIn(List<Byte> values) {
            addCriterion("is_merchant_area in", values, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaNotIn(List<Byte> values) {
            addCriterion("is_merchant_area not in", values, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaBetween(Byte value1, Byte value2) {
            addCriterion("is_merchant_area between", value1, value2, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsMerchantAreaNotBetween(Byte value1, Byte value2) {
            addCriterion("is_merchant_area not between", value1, value2, "isMerchantArea");
            return (Criteria) this;
        }

        public Criteria andIsEnabledIsNull() {
            addCriterion("is_enabled is null");
            return (Criteria) this;
        }

        public Criteria andIsEnabledIsNotNull() {
            addCriterion("is_enabled is not null");
            return (Criteria) this;
        }

        public Criteria andIsEnabledEqualTo(Byte value) {
            addCriterion("is_enabled =", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledNotEqualTo(Byte value) {
            addCriterion("is_enabled <>", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledGreaterThan(Byte value) {
            addCriterion("is_enabled >", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_enabled >=", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledLessThan(Byte value) {
            addCriterion("is_enabled <", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledLessThanOrEqualTo(Byte value) {
            addCriterion("is_enabled <=", value, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledIn(List<Byte> values) {
            addCriterion("is_enabled in", values, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledNotIn(List<Byte> values) {
            addCriterion("is_enabled not in", values, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledBetween(Byte value1, Byte value2) {
            addCriterion("is_enabled between", value1, value2, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsEnabledNotBetween(Byte value1, Byte value2) {
            addCriterion("is_enabled not between", value1, value2, "isEnabled");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNull() {
            addCriterion("is_deleted is null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIsNotNull() {
            addCriterion("is_deleted is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeletedEqualTo(Byte value) {
            addCriterion("is_deleted =", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotEqualTo(Byte value) {
            addCriterion("is_deleted <>", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThan(Byte value) {
            addCriterion("is_deleted >", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_deleted >=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThan(Byte value) {
            addCriterion("is_deleted <", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedLessThanOrEqualTo(Byte value) {
            addCriterion("is_deleted <=", value, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedIn(List<Byte> values) {
            addCriterion("is_deleted in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotIn(List<Byte> values) {
            addCriterion("is_deleted not in", values, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andIsDeletedNotBetween(Byte value1, Byte value2) {
            addCriterion("is_deleted not between", value1, value2, "isDeleted");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNull() {
            addCriterion("create_user_id is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIsNotNull() {
            addCriterion("create_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdEqualTo(Long value) {
            addCriterion("create_user_id =", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotEqualTo(Long value) {
            addCriterion("create_user_id <>", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThan(Long value) {
            addCriterion("create_user_id >", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("create_user_id >=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThan(Long value) {
            addCriterion("create_user_id <", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdLessThanOrEqualTo(Long value) {
            addCriterion("create_user_id <=", value, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdIn(List<Long> values) {
            addCriterion("create_user_id in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotIn(List<Long> values) {
            addCriterion("create_user_id not in", values, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdBetween(Long value1, Long value2) {
            addCriterion("create_user_id between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserIdNotBetween(Long value1, Long value2) {
            addCriterion("create_user_id not between", value1, value2, "createUserId");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNull() {
            addCriterion("create_user_name is null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIsNotNull() {
            addCriterion("create_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameEqualTo(String value) {
            addCriterion("create_user_name =", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotEqualTo(String value) {
            addCriterion("create_user_name <>", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThan(String value) {
            addCriterion("create_user_name >", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("create_user_name >=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThan(String value) {
            addCriterion("create_user_name <", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLessThanOrEqualTo(String value) {
            addCriterion("create_user_name <=", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameLike(String value) {
            addCriterion("create_user_name like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotLike(String value) {
            addCriterion("create_user_name not like", value, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameIn(List<String> values) {
            addCriterion("create_user_name in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotIn(List<String> values) {
            addCriterion("create_user_name not in", values, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameBetween(String value1, String value2) {
            addCriterion("create_user_name between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateUserNameNotBetween(String value1, String value2) {
            addCriterion("create_user_name not between", value1, value2, "createUserName");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNull() {
            addCriterion("update_user_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIsNotNull() {
            addCriterion("update_user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdEqualTo(Long value) {
            addCriterion("update_user_id =", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotEqualTo(Long value) {
            addCriterion("update_user_id <>", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThan(Long value) {
            addCriterion("update_user_id >", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("update_user_id >=", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThan(Long value) {
            addCriterion("update_user_id <", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdLessThanOrEqualTo(Long value) {
            addCriterion("update_user_id <=", value, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdIn(List<Long> values) {
            addCriterion("update_user_id in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotIn(List<Long> values) {
            addCriterion("update_user_id not in", values, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdBetween(Long value1, Long value2) {
            addCriterion("update_user_id between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserIdNotBetween(Long value1, Long value2) {
            addCriterion("update_user_id not between", value1, value2, "updateUserId");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIsNull() {
            addCriterion("update_user_name is null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIsNotNull() {
            addCriterion("update_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameEqualTo(String value) {
            addCriterion("update_user_name =", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotEqualTo(String value) {
            addCriterion("update_user_name <>", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameGreaterThan(String value) {
            addCriterion("update_user_name >", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("update_user_name >=", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLessThan(String value) {
            addCriterion("update_user_name <", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLessThanOrEqualTo(String value) {
            addCriterion("update_user_name <=", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameLike(String value) {
            addCriterion("update_user_name like", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotLike(String value) {
            addCriterion("update_user_name not like", value, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameIn(List<String> values) {
            addCriterion("update_user_name in", values, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotIn(List<String> values) {
            addCriterion("update_user_name not in", values, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameBetween(String value1, String value2) {
            addCriterion("update_user_name between", value1, value2, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateUserNameNotBetween(String value1, String value2) {
            addCriterion("update_user_name not between", value1, value2, "updateUserName");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}